/* 第二次修改 */
// 引入模块：
var express = require('express');
var path = require('path');
var cookieParser = require('cookie-parser');
// 在小黑板打印请求日志
// var logger = require('morgan');
//引入跨域
const cors= require('cors');

// 创建应用级别的服务器
var app = express();
let session=require("cookie-session");
//绑定
app.use(session({
  name:"AAA",
  keys:["asad","aQREWERWER","23424334"],
  maxAge:1000*60
}));

//静态资源
app.use('/uploads',express.static(path.join(__dirname,'uploads')));

// 引入路由模块
let logRigRouter=require('./routes/login.js');
let logRigRegister=require('./routes/register.js');
let IndexRegister=require('./routes/index.js');
let SearchRegister=require('./routes/search.js');
let VideoDetailRegister=require('./routes/videoDetail.js');
let userRouter=require('./routes/user');
let StudyRouter=require('./routes/study');

let onlineRouter=require('./routes/online.js');

// 注册中间件
// post传参
app.use(express.json());
app.use(express.urlencoded({ extended: false }));
//开放静态页面
app.use("/uploads",express.static(path.join(__dirname,'uploads')));

app.use(cookieParser());
app.use(cors())

// 静态资源  转移至前端
// 注册路由中间件
app.use(logRigRouter);
app.use(logRigRegister);
app.use(IndexRegister);
app.use(SearchRegister);
app.use(VideoDetailRegister);
app.use(onlineRouter);
app.use(userRouter);
app.use(StudyRouter);

// 404错误处理
// catch 404 and forward to error handler
app.use(function(req, res, next) {
  res.send({
    status:404,
    msg:"not found"
  })
});

// 业务逻辑错误处理：
// error handler
app.use(function(err, req, res, next) {
  res.send({
    status:500,
    msg:err
  })
});

// 为什么没有listen端口，而是暴露app 
// 因为：app.js中内容很多，为了安全考虑，我们不希望外界直接得到app.js里面的内容
// 根据模板化的思想，app.js放的是一些公用的内容（引入模块，一些中间件）
// 所以我们把监听端口，单独的拿出去了
// 把app模块化，然后把app暴露
// 把监听端口放到了 bin/www 目录中，在www中引入了app
// 所以启动项目==》node  ./bin/www
module.exports = app;
